import React, { Component } from 'react'
import Detail from './Detail'
import {Link, Route} from 'react-router-dom'

export default class Message extends Component {
  state = {
    messageArr: [
      {id: '01', title: '消息1'},
      {id: '02', title: '消息2'},
      {id: '03', title: '消息3'},
    ]
  }
  replaceShow = (id, title) => {
    // 编写一段代码，让其实现跳转到Detail组件，且为replace跳转

    //  params参数
    // this.props.history.replace(`/home/message/detail/${id}/${title}`)
    // search参数
    // this.props.history.replace(`/home/message/detail/?id=${id}&title=${title}`)
    // state参数
    this.props.history.replace('/home/message/detail',{id, title})
  }
  pushShow = (id, title) => {
    // 编写一段代码，让其实现跳转到Detail组件，且为push跳转

    //  params参数
    // this.props.history.push(`/home/message/detail/${id}/${title}`)
    // search参数
    // this.props.history.push(`/home/message/detail/?id=${id}&title=${title}`)
    // state参数
    this.props.history.push('/home/message/detail', {id, title})
  }
  render() {
    const {messageArr} = this.state
    return (
      <div>
        <ul>
          {
            messageArr.map((msgObj) => {
              return (
                <li key={msgObj.id}>
                  {/* 向路由组件传递params参数 */}
                  {/* <Link to={`/home/message/detail/${msgObj.id}/${msgObj.title}`}>{msgObj.title}</Link>&nbsp;&nbsp; */}
                  
                  {/* 向路由组件传递search参数 */}
                  {/* <Link to={`/home/message/detail/?id=${msgObj.id}&title=${msgObj.title}`}>{msgObj.title}</Link>&nbsp;&nbsp; */}
                
                  {/* 向路由组件传递state参数 */}
                  <Link to={{pathname: '/home/message/detail', state: {id: msgObj.id, title: msgObj.title}}}>{msgObj.title}</Link>

                  &nbsp;<button onClick={() =>this.pushShow(msgObj.id, msgObj.title)}>push查看</button>
                  &nbsp;<button onClick={() =>this.replaceShow(msgObj.id, msgObj.title)}>replace查看</button>
                </li>
              )
            })
          }
        </ul>
        <hr />
        {/* 声明接收params参数 */}
        {/* <Route path='/home/message/detail/:id/:title' component={Detail}></Route> */}

        {/* 声明接收search参数无需声明接收，正常注册路由即可 */}
        {/* <Route path='/home/message/detail' component={Detail}></Route> */}

        {/* 声明接收state参数无需声明接收，正常注册路由即可 */}
        <Route path='/home/message/detail' component={Detail}></Route>
        <button onClick={() => this.props.history.goBack()}>回退</button>
        <button onClick={() => this.props.history.goForward()}>前进</button>
        <button onClick={() => this.props.history.go(2)}>原地踏步</button>
      </div>
    )
  }
}
